// XFile.h

#ifndef __MODELFILE_X_H__
#define __MODELFILE_X_H__

#include "ModelFile.h"

class CXFile : public IModelFile
{
private:
	//LPD3DXBUFFER m_pD3DXMtrlBuffer;
	//LPD3DXMESH m_pMesh;
	//DWORD m_dwNumMaterials;
protected:
	virtual bool GetObject(ID3DXFileData* pFileData, ID3DXFileData* pParentFileData, DWORD dwDepth, void** pData, bool bForceRef);
	bool GetChildObject(ID3DXFileData* pFileData, DWORD dwDepth, void** pData, bool bForceRef);
public:
	CXFile(void);
	virtual ~CXFile();

	// non-const method
	virtual bool Load(const char* pszFileName);
	
	// const method
	void GetObjectGUID(ID3DXFileData* pFileData, GUID* type) const;
	const char* GetObjectName(ID3DXFileData* pFileData) const;
};

#endif

